package com.newlink.building.record.mvp.contract

import com.newlink.building.common_base.base.IModel
import com.newlink.building.common_base.base.IPresenter
import com.newlink.building.common_base.base.IView
import com.newlink.building.common_base.model.bean.*
import io.reactivex.Observable

/**
 * @author wangyang
 * @date 2022/9/29
 * @description 记录-呼叫记录页面的Contract
 */
interface Module_Record_CallRecordContract {

    interface Model : IModel {
        fun getCallRecordList(
            token: String,
            page: Int,
            limit: Int,
            sip: String
        ): Observable<HttpResult<CallRecordData>>

        fun readMissedCalls(token: String, request: RecordMessageReadRequest): Observable<Base_BaseBean>
    }

    interface View : IView {
        fun getCallRecordListSuccess(total: Int, list: MutableList<CallRecordListData>?)
        fun getCallRecordListFail()
        fun readMissedCallsSucess(success: Boolean)
    }

    interface Presenter : IPresenter<View> {
        fun getCallRecordList(
            token: String,
            page: Int,
            limit: Int,
            sip: String
        )

        fun readMissedCalls(token: String, request: RecordMessageReadRequest)
    }
}